1. Field of the Invention
The present invention relates to a computer system, and deals more particularly with methods, systems, computer program products, and methods of doing business by providing an improved technique for scheduling execution of jobs for or by network-connected devices, thereby enabling the job execution process to scale more easily, efficiently, and effectively to support large numbers of devices and/or users. Examples of jobs include, but are not limited to, distribution of resources (including software, configuration information, images, and other types of content) to a device, fetching a device's inventory information, backing up a device's contents, and so forth.
2. Description of the Related Art
For those businesses which have large numbers of users with computing devices, managing the installed inventory of software and other resources (such as image files accessed by the software) on those devices can be a complex, tedious, expensive, and time-consuming task. It is necessary to track each software product installed on each computing device, including application software as well as system software (such as operating systems, printer drivers, and so forth). In addition, the version and/or release number of each software product must often be tracked, and it may be necessary to track the device's other resources as well. This inventory tracking enables the business to determine where to deploy new software or other resources when necessary, as well as which devices may need to have already-installed software or other resources deleted or updated. For example, if a security patch is to be distributed, it is necessary to determine which devices have the software being patched. (Furthermore, inventory tracking is often necessary to enable a business to determine whether it is in compliance with the licensing requirements of the various software vendors.)
Many businesses have an ever-increasing number of “mobile workers”—that is, workers who need to access the computing infrastructure of the business from off-premises. These workers may be using a myriad of different types of computing devices, and it is necessary to track the types of devices as well as the software installed on those devices. Often, the computing devices are designed to use wireless communication means; in other cases, such as when a worker telecommutes from home, wireline communications may be used. In this latter case, the worker's computing device may be of a type which is not typically considered mobile, such as a desktop computer. Some workers may alternate between using multiple types of devices. For example, an executive going on a business trip might use her desktop or laptop computer while in her office to book her airplane flight, then use her network-enabled cellular phone on the way to the airport to verify the flight departure time, and then use her personal digital assistant (“PDA”) to view maps while driving to her hotel. Some experts have predicted that by the year 2003, an average user will have four different devices. As the number of devices in the business increases, it becomes increasingly beneficial to use an automated management system.
Individuals are beginning to use multiple types of computing devices in their personal lives as well. In addition to laptop or desktop computers, many people today use PDAs, pagers, and cell phones, as well as palmtop or handheld computing devices. A number of types of computing devices are gaining popularity with consumers, including wearable computing devices, in-vehicle devices, smartphones, set-top boxes, and smart appliances in the home, and other types of pervasive computing devices are likely to emerge in coming years. Some of these types of devices are not traditionally considered as performing computations per se. (For example, although in recent years PDAs commonly include networking functionality and application programs, early forms of PDAs served primarily as date/address books.) The term “computing devices” or “devices” is used herein to refer to any of these various devices to which software or other resources may be distributed, as well as more traditional computing devices such as desktop computers, servers, and mainframes. The term “resources” is used hereinafter to refer to software as well as images, configuration information, and other types of content that may be used by a device. In addition, resources may comprise information that is fetched from a device (such as an inventory of the device's installed hardware and/or software.)
Management services which enable businesses and individuals to manage the resources installed on their computing devices (and similarly, which allow retrieval of information about resources of computing devices, and performing other jobs for or by such devices) are commercially available. Organizations referred to as “service providers” provide this type of management service to networked customers. Service providers include Internet Service Providers (“ISPs”), Application Service Providers (“ASPs”), telephone companies, and others. Software products that perform this resource management function are also commercially available. An example is the Tivoli® Personalized Services Manager (“TPSM”) product from Tivoli Systems. (“Tivoli” is a registered trademark of Tivoli Systems Inc.) TPSM includes a component known as Tivoli Services Manager (“TISM”) and a component hereafter referred to as “Device Manager”. Device Manager enables a service provider to manage thousands, or even millions, of devices effectively. Device Manager may also be used with a service provider's own subscriber software, rather than with TISM, and provides a number of features including: automatic provisioning and deployment; device configuration and software provisioning at first connection; and automated change management. Device Manager can also function without a subscription management system. (For more information on Device Manager, see the Device Manager Planning and Installation guide, which is available on CD-ROM from Tivoli Systems. For more information on TPSM. see “Introducing Tivoli Personalized Services Manager 1.1”, IBM publication SG24-6031-00.
While products such as TPSM provide many advantageous features and assist greatly in the management of deployed devices, a particular resource distribution service may have a very large number of potential users and therefore many client devices. If a large number of devices request a resource distribution job at the same time, the server-side system may become overwhelmed with traffic and may be unable to service some portion of the requests in a timely manner—and some requests may even be rejected due to the system load. For example, if a new release of an operating system is scheduled for downloading to all handheld devices (perhaps requiring multiple client/application server interactions), and too many devices attempt to perform this download job at once, the download job may start to fail on some clients. The failures may trigger an automated retry process, which may further exacerbate the traffic overload. A snowball effect may result, in which there is so much load on the application server(s) that the job may never complete for many of the clients (or will not complete for a very long time). The automated deployment of resources to the devices may therefore function in a less-than-optimal manner. Simply adding more application servers is not likely to be a viable solution to this problem. This is because while requests for resource distribution may be made intermittently, spikes in demand may occur. For example, a group of users may often have very similar usage behaviors, wherein the workers of a business may connect to the network within a relatively small window of time to begin their work day and consumers may connect to their service provider in large numbers at certain times in the evenings or on weekends. Supposing that each connecting device requests delivery of resources, it is unlikely to be cost-effective for the service providers to install enough additional application servers to satisfy each request that might occur during such spikes in demand.
Accordingly, what is needed is a technique that avoids the limitations of prior art device management and/or resource distribution systems.